In modern signal processing (used, for example, in wireless data transmissions as well as magnetic and optical data storage, among many other applications) digital information is often encoded using an error correction code in order to facilitate the detection and correction of errors in noisy channels. Signal decoders are often implemented as finite state machines. When the signal is lost (e.g., the channel contains only noise, or the signal amplitude unexpectedly drops) the state of the decoder can be corrupted such that it will not be able to recover the transmitted data. An entire sector or block of data after the dropped signal may be lost due to this corrupted state, even if only a relatively small portion of the signal is lost.
Referring now to FIG. 1, model 100 of a typical channel detecting and decoding is shown. The waveform generator 101 mathematically models the received signal and signal amplitude defect. The received signal could be corrupted by media noise 102 and electric additive Gaussian noise 104. Scalar 103 represents an amplitude drop in the data signal (e.g., a reduction in the amplitude of the signal according to a ratio a). Noise generator 104 represents the addition of random noise nk to the channel. Loops block 105 represents filters to extract the signal from the channel before the signal is decoded, such as band-pass filters, analog-to-digital conversion (ADC), timing recovery, and finite impulse response (FIR) filters. Detector 110 and decoder 111 generally do not know the length and magnitude of the amplitude drop defect a, and attempt to recover the data from the received signal.
For channels with inter-symbol interference or data encoded by a convolutional code, a trellis based detector is conventionally used to detect data that is “hidden” in the received signal. For example, Viterbi detector 110 generally detects at least one most likely data sequence based on the received signal. In some implementations, the data is encoded with an outer code before transmission. The receiver may include an outer decoder 111 to correct errors that the Viterbi detector cannot recover. In some further implementations, the outer decoder 111 may be an iterative decoder which receives detection reliability values (e.g., values representing the statistical probability that a decoded sequence is correct) as input. Detection reliability values may be conventionally generated by a Viterbi detector using a soft output Viterbi algorithm (SOVA).
Referring now to FIG. 2A, graph 200 shows signal samples of an incoming signal (e.g., the output of waveform generator 101). In region 201, the data is erased from the channel. Thus, from approximately bit index 3300 to 3400, the incoming waveform is primarily made up of noise signal nk. Referring now to FIG. 2B, graph 200′ shows an expanded view of the incoming signal from bit index 3260 to bit index 3460. When the data signal is dropped from the channel, detector 110 cannot produce correct output. Thus, graph 210 in FIG. 2C shows locations in the bit stream where convolutional decoder 110 produces an erroneous output. FIG. 2C demonstrates that when the data signal is lost (e.g., from about bit index 3300 to about bit index 3400), detector 110 produces essentially random output, wherein about half of the output bits are in error. When the detector produces errors, the decoder 111 can be disrupted, which may corrupt an entire segment or sector of the decoded data.
Therefore, it is desirable to detect when the data signal has been lost from a channel, and to signal the decoder(s) to stop decoding or otherwise perform special processing on that segment of the signal so that further decoding (which may depend on the correctness of prior decoding) is not corrupted. One conventional solution to the problem is to detect when the amplitude of the incoming signal from the channel suddenly drops.
As shown in graphs 200 and 200′, the value of the sampled signal is constantly switching from a high level to a low level. Therefore, an analog envelope detector is often used to detect a drop in the amplitude of the signal. The output of the analog envelope detector may be modeled or otherwise implemented with a digital envelope detector according to the following equation:
                              V          t                =                  {                                                                                                                V                                              t                        -                        1                                                              -                                          α                      ⁢                                                                                                                            s                            t                                                    -                                                      V                                                          t                              -                              1                                                                                                                                                                                    ,                                                                                                  if                    ⁢                                                                                  ⁢                                          s                      t                                                        ≤                                      V                                          t                      -                      1                                                                                                                                                                                      V                                              t                        -                        1                                                              +                                          β                      ⁢                                                                                                                            s                            t                                                    -                                                      V                                                          t                              -                              1                                                                                                                                                                                    ,                                                            otherwise                                                                        (                  EQ          .                                          ⁢          1                )            where Vt is an envelope value at time t, St is the sample value of the input signal (e.g., from an FIR filter) at time t, α is a small value (e.g., 1/60) representing a low pass filter when the magnitude of St is less than or equal to the previous envelope value (e.g., Vt-1) and β is approximately 1, representing an all pass filter when the magnitude of St is greater than the previous envelope value.
According to this equation, as the sampled value of the signal decreases, the envelope value will decrease slowly. When the sampled value increases, the envelope value will immediately rise. Therefore, the fluctuations of the data signal generally will not significantly reduce the envelope value over time, while a true amplitude drop (e.g., an amplitude drop of sufficient duration) will decrease the envelope over time. Referring now to FIG. 2D, graph 240 shows an envelope value 241 over time. When the amplitude drops at approximately bit index 3300, envelope 241 slowly declines. When the signal is restored to the channel at approximately bit index 3420, the envelope is immediately restored to a high value. When the envelope falls below threshold 242, a drop flag may be triggered. In a conventional amplitude drop detector, an amplitude drop is detected when the envelope drops below a threshold, (e.g., threshold line 242 in FIG. 2D).
Such detectors are susceptible to the “low pass effect,” wherein the envelope value is above the threshold value for some significant portion of the amplitude drop event (e.g., low pass slope 243 of graph 240). Referring now to FIG. 2E, graph 250 maps drop flags produced when the envelope falls below the threshold. Region 251 of graph 250 shows negative drop flags in the “low pass slope” region where an amplitude drop has occurred, but the envelope value has not yet fallen below the threshold. Region 252 of graph 250 shows the positive drop flags where the amplitude drop has occurred. Thus, the amplitude drop is not noted until some time after the amplitude drop occurs. Therefore, the detector and decoder may still receive invalid data for a significant period of time (e.g., the period of time represented by regions 251 in graph 250).
One solution to the “low pass effect” is to increase the threshold. FIG. 2F shows graph 260 of an envelope 261 and threshold 263. As shown in graph 260, increasing the threshold increases the risk that transitory decreases in the envelope that do not represent an amplitude drop may trigger an amplitude drop flag. For example, in region 262 of graph 260, envelope 261 falls beneath threshold 263 for a short period. Referring now to FIG. 2G, graph 270 is a time-magnified view of graph 260. As shown in graph 270, increasing the threshold 273 value decreases the duration of the low pass slope 272, but in region 262 of graph 260, envelope 261 also falls below threshold 263, even though it does not represent an amplitude drop.
Therefore, it is desirable to detect amplitude drops in the incoming signal on a channel as soon as possible, while minimizing the risk of introducing false alarms (e.g., false indications that an amplitude drop has occurred).